package com.dilidili.mapper;

import com.domain.CollectVideo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Delete;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author ruoyi
 * @date 2022-03-31
 */
public interface CollectVideoMapper 
{
    /**
     * 查询【请填写功能名称】
     *
     * @param cUUserId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public CollectVideo selectCollectVideoByCUUserId(Long cUUserId);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param collectVideo 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<CollectVideo> selectCollectVideoList(CollectVideo collectVideo);

    /**
     * 新增【请填写功能名称】
     *
     * @param collectVideo 【请填写功能名称】
     * @return 结果
     */
    public int insertCollectVideo(CollectVideo collectVideo);

    /**
     * 修改【请填写功能名称】
     *
     * @param collectVideo 【请填写功能名称】
     * @return 结果
     */
    public int updateCollectVideo(CollectVideo collectVideo);

    /**
     * 删除【请填写功能名称】
     *
     * @param cUUserId 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteCollectVideoByCUUserId(Long cUUserId);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param cUUserIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCollectVideoByCUUserIds(Long[] cUUserIds);

    List<Map> getCollect(@Param("userId") Integer userId,@Param("videoId")  Integer videoId);

    Map getCollectNum(Integer videoId);

    Integer offCollectVideo(@Param("userId")Integer userId, @Param("videoId")Integer videoId);

    Integer onCollectVideo(@Param("userId")Integer userId, @Param("videoId")Integer videoId,@Param("date") Date date);

    List<CollectVideo> getCollectVideoById(@Param("video_id") Long videoId);

    List<CollectVideo> queryByUserId(Long userId);

    @Delete("delete from collect_video where c_v_video_id = #{videoId}")
    void delByVideoId(@Param("videoId") Long videoId);
}
